package com.developer.web.content.publicpage.partidos;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import com.developer.core.page.PublicPage;
import com.developer.core.utils.ObjectToXML;
import com.developer.logic.modulo.grupos.GrupoServicio;
import com.developer.logic.modulo.grupos.dto.Fase;
import com.developer.logic.modulo.grupos.dto.Grupo;
import com.developer.logic.modulo.partidos.PartidoServicio;
import com.developer.logic.modulo.partidos.dto.Partido;

public class PageConsultarPartidosPorFase extends PublicPage {

	@Override
	public String getNextPage() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public StringBuffer executeAction(HttpServletRequest request) {
		
		StringBuffer xmlPage = new StringBuffer();
		ObjectToXML objectToXML = ObjectToXML.getInstance();
		
		//Fases
		GrupoServicio grupoServicio = GrupoServicio.getInstance();
		List<Fase> fases = grupoServicio.getFases();
		xmlPage.append(objectToXML.getXML(fases));
		
			
		Map<String, Object> parameters = getParameters(request, true);
		Fase faseSeleccionado = (Fase)getParameterToObject("Fase", Fase.class, null, parameters);
				
		if(faseSeleccionado!=null && faseSeleccionado.getFase()!=null){
			
			xmlPage.append("<faseSeleccionada>");
			
				for (Fase fase : fases) {
					if(fase.getFase().equals(faseSeleccionado.getFase())){
						xmlPage.append(objectToXML.getXML(fase));	
					}
					
				}
			xmlPage.append("</faseSeleccionada>");
			
			//Se consultan los partidos por fase
			List<Grupo> grupos = GrupoServicio.getInstance().getGruposPorFase(faseSeleccionado);
			
			if(grupos!= null && grupos.size()>0){
				for (Grupo grupo : grupos) {
					
					xmlPage.append("<PartidosPorGrupo>");
					xmlPage.append(objectToXML.getXML(grupo));
					
						List<Partido> partidos = PartidoServicio.getInstance().getPartidosPorGrupo(grupo);
						
						if(partidos!=null && partidos.size()>0){
						
							for (Partido partido : partidos) {
								xmlPage.append(objectToXML.getXML(partido));
							}
						
						}else{
							xmlPage.append("<sinPartidos/>");
						}
					xmlPage.append("</PartidosPorGrupo>");
					
				}
				
			}else{
				xmlPage.append("<sinPartidos/>");
				
			}
		}else{
			xmlPage.append("<sinPartidos/>");
		}

		xmlPage.append(objectToXML.getXML(fases));
		
		
		return xmlPage;
		
	
	}
	
	@Override
	public boolean isAccesoValido(HttpServletRequest arg0) {
		return true;

	}
	
	
	
}

